package br.fafica.poo2.rightcode.instituicao;

import java.sql.SQLException;
import java.util.ArrayList;

import br.fafica.poo2.rightcode.Aplicacao;
import br.fafica.poo2.rightcode.exception.InstituicaoNaoEncontradaException;

public class RepositorioInstituicaoArrayList implements IRepositorioInstituicao {
	private ArrayList<Instituicao> instituicoes;
	
	public RepositorioInstituicaoArrayList(){
		instituicoes=new ArrayList<Instituicao>();
	}
	
	@Override
	public void TesteInstituicao() throws SQLException {
		
	}

	@Override
	public void InstalarInstituicao(boolean samples) throws SQLException {
		if(samples){
			Aplicacao app= new Aplicacao();
			for(Instituicao i: app.getInstituicao()){
				AdicionarInstituicao(i);
			}
		}
		
	}

	@Override
	public void AdicionarInstituicao(Instituicao instituicao)throws SQLException {
		instituicoes.add(instituicao);
		
	}

	@Override
	public void RemoverInstituicao(Instituicao instituicao) throws SQLException {
		instituicoes.remove(instituicao);
		
	}

	@Override
	public ArrayList<Instituicao> ListaInstituicao() throws SQLException {
		return instituicoes;
	}

	@Override
	public Instituicao BuscarInstituicao(int cnpj) throws SQLException{
		Instituicao busca=null;
		for(int i=0;i<instituicoes.size();i++){
			if(cnpj==instituicoes.get(i).getCnpj()){
				busca=instituicoes.get(i);
				break;
			}
		}
		return busca;
	}

	@Override
	public void EditarInstituicao(Instituicao instituicao) throws SQLException, InstituicaoNaoEncontradaException  {
		Instituicao nova= BuscarInstituicao(instituicao.getCnpj());
		if(nova!=null){
			nova.setNome(instituicao.getNome());
			nova.setCnpj(instituicao.getCnpj());
		}else{
			throw new InstituicaoNaoEncontradaException();
		}
		
	}

	
}
